package main.java.day03;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

/**
 * 输入一个生产日期格式"yyyy-MM-dd",再输入一个数字(保质期的天数)。
 * 然后经过计算输出促销日期，促销日期为:该商品过期日前2周的周三
 * @author Xiloer
 *
 */
public class Test04 {
    public static void main(String[] args) throws ParseException {
        System.out.println("请输入产品的生产日期");
        //让顾客输入一个string值 代表产品的生产日期
        String datestr=new  Scanner(System.in).nextLine();
        System.out.println("请输入产品的保质期");
        //生产日期肯定是int类型  但是输入的话  应该是string类型  所以需要用包装类进行转化
        //可以用Integer.parseInt 也可以使用Integer.valueOf().intValue()来进行转化
        int day = Integer.parseInt(new Scanner(System.in).nextLine());
        //然后要利用simpledateformat工具将输入的日期的string值解析为日期,格式外要用双引号套住.
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        //使用simpleDateFormat里的prase工具解析字符串的文本，生成 Date。
        Date date=simpleDateFormat.parse(datestr);
        //创建一个Calendar对象
        Calendar calendar =Calendar.getInstance();
        //给calendar设置值为已经转化为日期的date.
        calendar.setTime(date);
        //这个就是获取到过期的日期
        calendar.add(Calendar.DAY_OF_YEAR,day);
        //这个就是指的过期日前14天的日期;
        calendar.add(Calendar.DAY_OF_YEAR,-14);
       //将calender设置为过期日前14天那一周 周三的日期
        calendar.set(Calendar.DAY_OF_WEEK,Calendar.WEDNESDAY);
        //用calendar.getTime();转化为date.
        date=calendar.getTime();
        //然后再用simpleDateFormat的工具解析这个date.
        System.out.println("促销日期是"+simpleDateFormat.format(date));

    }
}
